package com.qingcheng.service.order;
import com.qingcheng.entity.PageResult;
import com.qingcheng.pojo.order.Order;
import com.qingcheng.pojo.order.OrderItem;
import com.qingcheng.pojo.order.OrderSize;
import com.qingcheng.pojo.order.Orders;

import java.util.*;

/**
 * order业务逻辑层
 */
public interface OrderService {


    public List<Order> findAll();


    public PageResult<Order> findPage(int page, int size);


    public List<Order> findList(Map<String,Object> searchMap);


    public PageResult<Order> findPage(Map<String,Object> searchMap,int page, int size);


    public Order findById(String id);

    public Map<String,Object> add(Order order);


    public void update(Order order);


    public void delete(String id);

    /**根据ID查询Orders
     * @param id
     * @return
     */
    public Orders findOrdersById(String id);

    /**批量发货
     * @param orderList
     */
    public void batchSend(List<Order> orderList);

    /**
     * 订单超时自动关闭
     */
    public void orderTimeOutLogic();

    /**订单合并
     * @param orderId1 主订单订单号
     * @param orderId2 从订单订单号
     */
    public void merge(String orderId1,String orderId2);

    /**拆分订单
     * @param orderItemList
     */
    public void split(List<OrderItem> orderItemList);

    /**
     * 修改订单状态
     * @param orderId
     * @param transactionId
     */
    public void updatePayStatus(String orderId,String transactionId);

    /**
     * 关闭订单
     * @param orderId
     */
    public void closeOrderByOrderId(String orderId);
}
